import { TokenModel } from "@/_gx/Types";

export const tokenStore = defineStore({
    id: "token",
    state: () => ({
        isCollapse: false,
        token: Gx.GetCookie(Config._TOKEN_KEY),
        me: Gx.GetSession(Config._ME_KEY),
        qiniu: Gx.GetCookie(Config._QINIU_KEY),
    }),

    actions: {
        SetToken(_token: TokenModel) {
            this.token = _token;
            Gx.SetCookie(Config._TOKEN_KEY, _token);
        },
        SetMe(_me: any) {
            this.me = _me;
            Gx.SetSession(Config._ME_KEY, _me);
        },
        SetQiniuInfo(_qiniu: any) {
            this.qiniu = _qiniu;
            Gx.SetCookie(Config._QINIU_KEY, _qiniu);
        },
    },
});

/**
 * 使用方法：
 * 1、先构建对象
 * const ss = useCounterStore();
 *
 * 2、获取值
 * ss.counter或ss.$state.counter，这2个都可以，暂时不知道有什么区别
 *
 * 3、在getters里写的
 * ss.doubleCount，直接调用
 *
 * 4、actions中写的是方法
 * ss.increment()
 */
